.\"	$OpenBSD: clean-old-distfiles.1,v 1.5 2015/07/23 08:05:18 bentley Exp $
.\"
.\" Copyright (c) 2012 Marc Espie <espie@openbsd.org>
.\"
.\" Permission to use, copy, modify, and distribute this software for any
.\" purpose with or without fee is hereby granted, provided that the above
.\" copyright notice and this permission notice appear in all copies.
.\"
.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\"
.Dd $Mdocdate: July 23 2015 $
.Dt CLEAN-OLD-DISTFILES 1
.Os
.Sh NAME
.Nm clean-old-distfiles
.Nd remove old distfiles
.Sh SYNOPSIS
.Nm clean-old-distfiles
.Op Fl nv
.Op Fl e Ar except
.Op Fl h Ar history
.Op Ar timestamp
.Sh DESCRIPTION
.Nm
uses information provided by
.Xr dpb 1
to remove obsolete distfiles:
each time
.Xr dpb 1
is run for a full scan of the ports tree, it appends to
an history log that records obsolete distfiles.
.Pp
.Nm
can be used to prune that log prior to a given
.Ar timestamp
and remove the corresponding distfiles.
.Pp
For normal files,
.Nm
verifies
.Xr sha256 1
checksums prior to removal.
.Nm
also removes links under
.Pa by_cipher/sha256 ,
but it trusts that the checksums for these are accurate.
.Pp
The
.Ar timestamp
optional argument is given in seconds since the epoch,
see
.Xr date 1 .
.Pp
Options are as follows:
.Bl -tag -width nnnn
.It Fl e Ar except
Read exception list from file
.Ar except .
Each line is the name of a file that shouldn't be removed.
.It Fl h Ar history
Read log from history file
.Ar history
instead of the default
.Pa /usr/ports/distfiles/history .
Turns on
.Fl nv ,
as this is a testing option.
.It Fl n
Don't really remove files.
.It Fl v
Display what will be removed, as
.Li rm file
lines.
.El
.Sh FILES
.Bl -tag -width /usr/ports
.It Pa /usr/ports
base of the ports tree, can be overridden with env variable
.Ev PORTSDIR .
.It Pa /usr/ports/distfiles
location of the distfiles repository, can be overridden with env variable
.Ev DISTDIR .
.It Pa /usr/ports/distfiles/history
log of obsolete distfiles.
.El
.Sh SEE ALSO
.Xr dpb 1 ,
.Xr sha256 1 ,
.Xr mirroring-ports 7
